package com.learn.learnsystem.config;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.util.Collections;

public class CodeGenerator {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/dev?useSSL=false&serverTimezone=UTC";
        String username = "root";
        String password = "001416";

        FastAutoGenerator.create(url, username, password)
                .globalConfig(builder -> {
                    builder.author("文氓") // 作者
                            .outputDir(System.getProperty("user.dir") + "/src/main/java"); // 输出目录
                })
                .packageConfig(builder -> {
                    builder.parent("com.learn") // 父包名
                            .moduleName("learnsystem") // 模块名
                            .pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "/src/main/resources/mapper")); // XML位置
                })
                .strategyConfig(builder -> {
                    builder.addInclude("user", "role") // 为user role两张表生成代码
                            .entityBuilder() // 实体配置
                            .enableLombok() // 使用Lombok
                            .enableTableFieldAnnotation() // 字段注解
                            .controllerBuilder() // 控制器配置
                            .enableRestStyle(); // REST风格
                })
                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker
                .execute();
    }
}
